Byte code Transformations for Distributed Threads in Java
نویسندگان
چکیده
In this paper, we study the shift of thread semantics that arises when adapting a centralized Java program for execution in a distributed environment. More specifically we focus on distributed applications that are developed by means of a distributed control flow programming model like Java RMI or OMG CORBA. The shift in thread semantics causes unexpected execution results or run-time errors if these differences were not taken into account by the programmer. We overcome this semantical gap between local and distributed programming by extending Java programming with the notion of distributed thread identity. Propagation of a globally unique, distributed thread identity provides a uniform mechanism by which all the program’s constituent objects involved in a distributed control flow can uniquely refer to that distributed thread as one and the same computational entity. We have implemented distributed thread identity by means of byte code transformation of application programs.
منابع مشابه
Distributed Threads in Java
In this paper, we study the problems of thread identity that arise with adapting a local Java program for execution in a distributed environment. When using a distributed control flow programming model like Java RMI or OMG CORBA, the programmer should take into account an inherent shift of semantics. We experienced a particular problem with shift of thread semantics when extending a serializati...
متن کاملByte Code Engineering
The term “Java” is used to denote two different concepts: the language itself and the related execution environment, the Java Virtual Machine (JVM), which executes byte code instructions. Several research projects deal with byte code-generating compilers or the implementation of new features via byte code transformations. Examples are code optimization, the implementation of parameterized types...
متن کاملExtending Camelot with Mutable State and Concurrency
Camelot is a resource-bounded functional programming language which compiles to Java byte code to run on the Java Virtual Machine. We extend Camelot to include language support for Camelot-level threads which are compiled to native Java threads. We extend the existing Camelot resource-bounded type system to provide safety guarantees about the heap usage of Camelot threads.
متن کاملAutomatically exploiting implicit parallelism in Java
In this paper we show how implicit parallelism in Java programs can be made explicit by a restructuring compiler using the multi-threading mechanism of the language. In particular, we focus on automatically exploiting implicit parallelism in loops and multi-way recursive methods. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After...
متن کاملAutomatically Exploiting Implicit Parallelism in Multi-way Recursive Methods in Java
In this paper we show how implicit parallelism in multi-way recursive methods, typically used to implement tree traversal or divide-and-conquer algorithms, can be made explicit by a restructuring compiler using the multi-threading mechanism of Java. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After compilation of the transformed...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001